package com.gpframework.module.base.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.gpframework.common.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @ClassName BaseDeviceInfoVo
 * @Author gpframework
 * @Date 2022-04-06
 * @Version 1.0.0
 * @Description 系统设备信息Vo对象
 */
@Data
@ToString
@EqualsAndHashCode
@NoArgsConstructor
@Accessors(chain = true)
public class BaseDeviceInfoVo {
    private static final long serialVersionUID = 1L;

    /**
     * ID
     */
    @ApiModelProperty("ID")
    private Long deviceInfoId;

    /**
     * 厂家id
     */
    @Excel(name = "厂家id")
    @ApiModelProperty("厂家id")
    private String companyId;

    /**
     * 厂家名称
     */
    @Excel(name = "厂家名称")
    @ApiModelProperty("厂家名称")
    private String companyName;

    @ApiModelProperty("机器指纹")
    private String fingerprint;

    /**
     * 设备分类
     */
    @Excel(name = "设备分类")
    @ApiModelProperty("设备分类")
    private String deviceClassification;

    /**
     * 设备序列号。门店下必定唯一
     */
    @ApiModelProperty("设备序列号。门店下必定唯一")
    private String deviceSn;

    /**
     * 设备类型
     */
    @Excel(name = "设备类型")
    @ApiModelProperty("设备类型")
    private String deviceType;

    /**
     * 设备名称
     */
    @Excel(name = "设备名称")
    @ApiModelProperty("设备名称")
    private String deviceName;

    /**
     * 设备型号
     */
    @Excel(name = "设备型号")
    @ApiModelProperty("设备型号")
    private String deviceModel;

    /**
     * 款式
     */
    @Excel(name = "款式")
    @ApiModelProperty("款式")
    private String style;

    /**
     * 尺寸
     */
    @Excel(name = "尺寸")
    @ApiModelProperty("尺寸")
    private String size;

    /**
     * 设备号
     */
    @Excel(name = "设备号")
    @ApiModelProperty("设备号")
    private String deviceCode;

    /**
     * 颜色
     */
    @Excel(name = "颜色")
    @ApiModelProperty("颜色")
    private String color;

    /**
     * 单位
     */
    @Excel(name = "单位")
    @ApiModelProperty("单位")
    private String unit;

    /**
     * 特点
     */
    @Excel(name = "特点")
    @ApiModelProperty("特点")
    private String characteristic;

    /**
     * 产品特点介绍
     */
    @Excel(name = "产品特点介绍")
    @ApiModelProperty("产品特点介绍")
    private String characteristicDetail;

    /**
     * 进货价
     */
    @Excel(name = "进货价")
    @ApiModelProperty("进货价")
    private BigDecimal buyPrice;

    /**
     * 销售价
     */
    @Excel(name = "销售价")
    @ApiModelProperty("销售价")
    private BigDecimal salePrice;

    /**
     * 是否是我们自己的产品
     */
    @Excel(name = "是否是我们自己的产品")
    @ApiModelProperty("是否是我们自己的产品")
    private String isWe;

    /**
     * 排序
     */
    @Excel(name = "排序")
    @ApiModelProperty("排序")
    private Long sort;

    /**
     * 备注
     */
    @Excel(name = "备注")
    @ApiModelProperty("备注")
    private String remarks;

    /**
     * 闸机设备号
     */
    @ApiModelProperty("闸机设备号")
    private String gateDeviceCode;

    /**
     * 状态：正常
     */
    @ApiModelProperty("状态：正常")
    private String status;

    /**
     * 闸机等级
     */
    @ApiModelProperty("闸机等级")
    private String gateLevel;

    /**
     * 继电器端口
     */
    @ApiModelProperty("继电器端口")
    private String relayPort;

    /**
     * 控制闸机
     */
    @ApiModelProperty("控制闸机")
    private String controlGate;

    /**
     * 使用场景
     */
    @ApiModelProperty("使用场景")
    private String usageScenarios;

    /**
     * 场地id
     */
    @ApiModelProperty("场地id")
    private Long regionId;

    /**
     * 使用场地
     */
    @ApiModelProperty("使用场地")
    private String regionName;

    /**
     * 创建者
     */
    @ApiModelProperty("创建者")
    private String createBy;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("创建时间")
    private Date createTime;

    /**
     * 更新者
     */
    @ApiModelProperty("更新者")
    private String updateBy;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("更新时间")
    private Date updateTime;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("更新时间")
    private String image;


    /**
     * 品牌id
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    @ApiModelProperty("品牌id")
    private Long brandId;
    /**
     * 门店id
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    @ApiModelProperty("门店id")
    private Long storeId;

    @ApiModelProperty("门店名称")
    private String storeName;

    /**
     * 本次刷脸id
     */
    @ApiModelProperty("本次刷脸id")
    private String eventGuid;
}
